草庐IT

Android Endless list 内存管理

全部标签

C++内存泄漏检测方法

我正在开发一个在Windows上使用许多外部库的项目。我遇到了内存泄漏问题:我通过重写operatornew/new[]和delete/delete[]检测到了很多内存泄漏。问题是我知道有多少内存块泄漏了,但不知道在哪里可以找到它们,在重写的函数中,我可以记录分配的内存块的大小和位置,而没有堆栈跟踪。所以为了处理它,我想我也需要记录堆栈跟踪(但是怎么做?),或者有什么方法可以找到导致内存泄漏的代码?非常感谢您的帮助。 最佳答案 我使用以下方法为new提供有关分配每个内存块的文件和行的信息:voidoperatordelete(voi

windows - 套接字应用程序最佳实践的缓冲区管理

拥有WindowsIOCP应用程序......................我了解对于异步i/o操作(在网络上),缓冲区必须在发送/读取操作期间保持有效。因此对于每个连接,我都有一个用于读取的缓冲区。对于发送,我使用缓冲区将要发送的数据复制到其中。发送操作完成后,我释放缓冲区以便可以重复使用。到目前为止还不错,不是什么大问题。尚不清楚的是你们是怎么做到的?另一件事是,即使以这种方式处理,我的意思是多缓冲区,接收端也可能会被数据淹没(根据经验)。即使将SO_RCVBUF设置为25MB也对我的测试没有帮助。所以我该怎么做?有待发送队列吗? 最佳答案

c++ - 内存不能是 "read"。 - 随机崩溃

我遇到了一个由CSceneNode*pRoot=nodes[0];引起的随机崩溃的问题;//真正的问题是=nodes[0];崩溃消息是:“0x0059d383”处的指令引用了“0x00000000”处的内存。无法“读取”内存。我没有看到问题,请帮帮我好吗?在保存.cppvoidCNESave::SaveLocation(CNELocation*pLoc)//OthercodeCSceneNode*scene=pLoc->GetScene();vectornodes;scene->GetNodes(GetNodesByPartOfName,nodes,&string("_Ldynamic

Python内存限制?接近限制时清除GC?

在执行其他内存密集型操作之前如何清除垃圾收集对象?还是内存满了自动完成?为什么看起来Python(+Eclipse)在2GB(Win32)时抛出内存异常,而实际上在Windows上仍有一些内存未使用?是否在任何地方定义了限制? 最佳答案 您可以使用gc模块调整垃圾收集器的性能——例如,使用gc.set_threshold。--或者你可以“手动”收集垃圾:gc.collect.但是,我相信大多数时候,对象的引用计数归零后会立即被收集。因此,明确地说,(感谢delnan!)垃圾回收仅在循环引用阻止引用计数达到零时才成为问题。另请注意gc

windows - 如何确定调用函数是否需要管理权限

我正在尝试找出是否有一种简单的方法来判断调用函数是否需要我的程序以管理员身份运行才能正常工作。谢谢! 最佳答案 当然。您可以运行该函数,如果它失败并显示GetLastError()==ERROR_ACCESS_DENIED,那么您需要管理权限。 关于windows-如何确定调用函数是否需要管理权限,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6499619/

windows - 当角色崩溃或通过管理 API 重新启动时,Azure 角色主机是否真的重新启动了?

假设我的Azure角色以某种方式耗尽了系统范围的资源。例如,它会产生许多进程,所有这些进程都会挂起并消耗系统中的所有虚拟内存。或者它创建了大量的WindowsAPI事件对象并且无法释放它们并且无法创建更多此类对象。我的意思是什么excepttrashingthefilesystem.现在,一旦正常的Windows机器重新启动,我描述的更改就会被取消-进程被终止,虚拟内存被“回收”,事件和其他类似对象被“回收”等等。但还有一个问题。如果主机实际上并未重新启动,而是在我点击“重启”或“停止”然后“启动”时经历了一些其他过程,该怎么办?当我重启角色或重启实例时,主机是否真的重启了?

c++ - 使用 dll 中的类时内存无效

这是我第一次尝试从dll导出类。我所做的是:-创建一个接口(interface)(只有纯虚方法)-使用不会导出的类在dll中实现此接口(interface)-该类有一个在其this指针上调用delete的释放方法-创建了一个带有静态方法的工厂类,该方法返回指向具体类的指针但作为接口(interface)。这个类是导出的。-返回对象的删除是通过调用其释放方法完成的。我从本教程中收集了所有这些aboutclassesindlls.问题是,当我在另一个项目中使用此dll时,一切正常,直到我对该对象调用释放函数。然后它会显示一个断言失败窗口,其中包含消息“_ASSERTE(_BLOCK_TYP

c - 如何检查指定用户是否是本地计算机上的管理员?

我想知道用户是否是PC上的管理员?我找到了执行此操作的代码片段,但我遇到了问题。这段代码的问题是,如果启动进程的用户是否具有管理员权限,则此函数将返回。但我想查询特定用户是否具有管理员权限。我能以某种方式做到这一点吗?这很重要,因为我的应用程序将在SYSTEM帐户下运行,因此它总是返回用户是管理员,但我想知道登录用户是否是管理员?代码片段:BOOLIsUserAdmin(VOID)/*++RoutineDescription:ThisroutinereturnsTRUEifthecaller'sprocessisamemberoftheAdministratorslocalgroup.

java:将图标放入 .jar 文件中以便 Windows 资源管理器可以识别它们?

Windows知道在哪里可以找到.exe或.dll文件中的图标。有什么方法可以在.jar文件中设置图标资源以便Windows可以识别它们吗?(我对XP或Windows7的答案感兴趣) 最佳答案 JavaWebStart可以安装图像以用于桌面快捷方式和菜单项。JWS还支持可以在应用程序加载(和/或更新新类)时显示的启动画面。对图标的支持适用于任何可用Java的桌面PC平台(警告:如果操作系统支持该功能)。 关于java:将图标放入.jar文件中以便Windows资源管理器可以识别它们?,我

windows - Perl 内存不足

我有一个脚本可以读取两个csv文件并比较它们以查明出现在一个文件中的ID是否也出现在另一个文件中。我收到的错误如下:Outofmemoryduring"large"requestfor67112960bytes,totalsbrk()is348203008bytes现在是代码:usestrict;useFile::Basename;my$DAT=$ARGV[0];my$OPT=$ARGV[1];my$beg_doc=$ARGV[2];my$end_doc=$ARGV[3];my$doc_counter=0;my$page_counter=0;my%opt_beg_docs;my%beg